﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class СохранениеНастроек
	{
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА УПРАВЛЕНИЯ НАСТРОЙКАМИ

		public object ЗаполнитьНастройкиПриОткрытииОтчета(/*ОтчетОбъект*/)
		{
			//Пользователи = Новый Массив;
			//Пользователи.Добавить(ПараметрыСеанса.ТекущийПользователь);
			//Пользователи.Добавить(Справочники.ГруппыПользователей.ВсеПользователи);
			//Запрос = Новый Запрос;
			/*Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
	|	СохраненныеНастройки.Ссылка КАК СохраненнаяНастройка
	|ИЗ
	|	Справочник.СохраненныеНастройки.Пользователи КАК СохраненныеНастройкиПользователи
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СохраненныеНастройки КАК СохраненныеНастройки
	|		ПО СохраненныеНастройкиПользователи.Ссылка = СохраненныеНастройки.Ссылка
	|ГДЕ
	|	СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА
	|	И СохраненныеНастройки.НастраиваемыйОбъект = &НастраиваемыйОбъект
	|	И СохраненныеНастройкиПользователи.Пользователь В(&Пользователи)";*/
			//Запрос.УстановитьПараметр("Пользователи", Пользователи);
			//Запрос.УстановитьПараметр("НастраиваемыйОбъект", "ОтчетОбъект." + ОтчетОбъект.Метаданные().Имя);
			//ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
			if(true/*ТаблицаРезультата.Количество() > 0*/)
			{
				//ОтчетОбъект.СохраненнаяНастройка = ТаблицаРезультата[0].СохраненнаяНастройка;
				//ОтчетОбъект.ПрименитьНастройку();
			}
			return null;
		}
		// Процедура сохраняет настройки формы.
		//
		// Параметры:
		//  СохраненнаяНастройка       - СправочникСсылка.СохраненныеНастройки - сохраняемая настройка.
		//  СохраняемыеНастройки - параметры настройки формы.
		//

		public void СохранитьНастройкуОбъекта(/*СохраненнаяНастройка, СохраняемыеНастройки*/)
		{
			//ОбъектСохраненнаяНастройка = СохраненнаяНастройка.ПолучитьОбъект();
			if(true/*СохраненнаяНастройка.Предопределенный*/)
			{
				//СохраняемыеНастройки.Вставить("Изменялась", истина);
			}
			//ОбъектСохраненнаяНастройка.ХранилищеНастроек = Новый ХранилищеЗначения(СохраняемыеНастройки);
		}
		// Процедура открывает форму выбора настройки форм.
		//
		// Параметры:
		//  ФормаВладелец            - Форма - форма, которая является владельцем формы выбора.
		//  НастраиваемыйОбъект       - объект, для которой выбирается настройка.
		//  РежимСохраненияНастройки - Истина - форма открыта для выбора сохраняемой настройки.
		//

		public void ВыбратьНастройкуФормы(/*СохраненнаяНастройка, ФормаВладелец, НастраиваемыйОбъект, РежимСохраненияНастройки*/)
		{
			//ФормаВыбора = Справочники.СохраненныеНастройки.ПолучитьФормуВыбора(, ФормаВладелец);
			//ФормаВыбора.Отбор.НастраиваемыйОбъект.Установить(НастраиваемыйОбъект);
			if(true/*Найти(НастраиваемыйОбъект, "ОтчетОбъект") > 0*/)
			{
				//ФормаВыбора.Отбор.ТипНастройки.Установить(Перечисления.ТипыНастроек.НастройкиОтчета);
			}
			//ФормаВыбора.Отбор.НастраиваемыйОбъект.Установить(НастраиваемыйОбъект);
			//ФормаВыбора.Отбор.Ссылка.Использование = Истина;
			//ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
			if(true/*ТипЗнч(ФормаВладелец) = Тип("Форма")*/)
			{
				//ОтчетОбъект = ФормаВладелец.ОтчетОбъект;
			}
			//СписокДоступныхВариантов = ТиповыеОтчеты.ПолучитьСписокДоступныхВариантов(НастраиваемыйОбъект,,, ОтчетОбъект);
			//ФормаВыбора.ПараметрТекущаяСтрока    = СохраненнаяНастройка;
			//ФормаВыбора.РежимСохраненияНастройки = РежимСохраненияНастройки;
			//ФормаВыбора.ОткрытьМодально();
			//ФормаВыбора.Активизировать();
		}
		// Возвращает настройки отбора списка в виде таблицы
		//
		// Параметры:
		//  Отбор - (Отбор) - отбор, по которому строится таблица
		//
		// Возвращаемое значение:
		//  (ТаблицаЗначений) - таблица с значениями отбора
		//

		public object ПолучитьНастройкуОтбораСписка(/*Отбор*/)
		{
			/*// Сохранение настроек отборов
*/
			//ТаблицаНастроек = Новый ТаблицаЗначений();
			//ТаблицаНастроек.Колонки.Добавить("ИмяОтбора");
			//ТаблицаНастроек.Колонки.Добавить("Использование");
			//ТаблицаНастроек.Колонки.Добавить("ВидСравнения");
			//ТаблицаНастроек.Колонки.Добавить("Значение");
			//ТаблицаНастроек.Колонки.Добавить("ЗначениеС");
			//ТаблицаНастроек.Колонки.Добавить("ЗначениеПо");
			return null;
		}
		// Возвращает натсройки сортировок списка в виде таблицы
		//
		// Параметры:
		//  Порядок - (Порядок) - Порядок, по которому строится таблица
		//
		// Возвращаемое значение:
		//  (ТаблицаЗначений) - таблица с значениями сортировок
		//

		public object ПолучитьНастройкуПорядкаСписка(/*Порядок*/)
		{
			/*// Сохранение настроек сортировок
*/
			//ТаблицаНастроек = Новый ТаблицаЗначений();
			//ТаблицаНастроек.Колонки.Добавить("Данные");
			//ТаблицаНастроек.Колонки.Добавить("Направление");
			return null;
		}
		// Возвращает натсройки колонок списка в виде таблицы.
		//
		// Параметры:
		//  Колонки - (Колонки) - колонки списка, по которым строится таблица
		//
		// Возвращаемое значение:
		//  (ТаблицаЗначений) - таблица с значениями настройк
		//

		public object ПолучитьНастройкуКолонокСписка(/*Колонки*/)
		{
			/*// Сохранение настроек отборов
*/
			//ТаблицаНастроек = Новый ТаблицаЗначений();
			//ТаблицаНастроек.Колонки.Добавить("ИмяКолонки");
			//ТаблицаНастроек.Колонки.Добавить("Видимость");
			//ТаблицаНастроек.Колонки.Добавить("Положение");
			//ТаблицаНастроек.Колонки.Добавить("ИзменениеРазмера");
			//ТаблицаНастроек.Колонки.Добавить("Ширина");
			//ТаблицаНастроек.Колонки.Добавить("ВысотаЯчейки");
			//ТаблицаНастроек.Колонки.Добавить("АвтоВысотаЯчейки");
			return null;
		}
		// Устанавливает настройки отбора списка по сохраненным значениям из таблицы.
		//
		// Параметры:
		//  СтруктураНастроек - Структура - структура применяемых настроек.
		//  КлючЗначения      - Строка - ключ применяемой настройки.
		//  Отбор             - (Отбор) - Настройка отбора формы
		//

		public void ПрименитьНастройкуОтбораСписка(/*СтруктураНастроек, КлючЗначения, Отбор*/)
		{
			if(true/*ТипЗнч(СтруктураНастроек) = Тип("Структура")*/)
			{
				//СтруктураНастроек.Свойство(КлючЗначения, ТаблицаНастроек);
			}
			if(true/*ТаблицаНастроек = Неопределено*/)
			{
			}
		}
		// Устанавливает настройки сортировки списка по сохраненным значениям из таблицы
		//
		// Параметры:
		//  СтруктураНастроек - Структура - структура применяемых настроек.
		//  КлючЗначения      - Строка - ключ применяемой настройки.
		//  Порядок           - (Порядок) - настройка порядка формы.
		//

		public void ПрименитьНастройкуПорядкаСписка(/*СтруктураНастроек, КлючЗначения, Порядок, НастройкаПорядка*/)
		{
			if(true/*ТипЗнч(СтруктураНастроек) = Тип("Структура")*/)
			{
				//СтруктураНастроек.Свойство(КлючЗначения, ТаблицаНастроек);
			}
			if(true/*ТаблицаНастроек = Неопределено*/)
			{
			}
			//СтрокаПорядка = "";
			//СтрокаПорядка = Лев(СтрокаПорядка, СтрДлина(СтрокаПорядка) - 1);
			if(true/*СтрокаПорядка <> ""*/)
			{
				//Порядок.Установить(СтрокаПорядка);
			}
		}
		// Устанавливает настройки колонок списка по сохраненным значениям из таблицы.
		//
		// Параметры:
		//  СтруктураНастроек - Структура - структура применяемых настроек.
		//  КлючЗначения      - Строка - ключ применяемой настройки.
		//  Колонки           - (Колонки) - настраиваемые колонки списка.
		//

		public void ПрименитьНастройкуКолонокСписка(/*СтруктураНастроек, КлючЗначения, Колонки*/)
		{
			if(true/*ТипЗнч(СтруктураНастроек) = Тип("Структура")*/)
			{
				//СтруктураНастроек.Свойство(КлючЗначения, ТаблицаНастроек);
			}
			if(true/*ТаблицаНастроек = Неопределено*/)
			{
			}
		}
		// Проверяет, были ли изменены указанные реквизиты объекта.
		// Предназначена для установки Отказ в проверках перед записью объекта.
		//
		// Параметры:
		//  Объект    - проверяемый объект.
		//  Реквизиты - строка - список проверяемых реквизитов через запятую.
		//  Отказ     - устанавливается в Истина, если реквизит был изменен.
		//

		public void ОтказПриИзмененииРеквизитов(/*Объект, Знач Реквизиты, Отказ*/)
		{
			if(true/*ПустаяСтрока(Реквизиты)*/)
			{
			}
			//СтруктураРеквизитов = Новый Структура(Реквизиты);
		}

		public void НастроитьВидСписка(/*ТабличноеПоле, Пользователь*/)
		{
			//ТабличноеПоле.РежимВыделения = РежимВыделенияТабличногоПоля.Одиночный;
		}
		// Функция проверяет, переданный параметр, пустой он, или нет.
		//
		// Параметры:
		//  Параметр - параметр, значение которого проверяется.
		//
		// Возвращаемое значение:
		//  Истина - параметр пустой;
		//  Ложь   - параметр не пустой.
		//

		public object ПустоеЗначениеЗначения(/*Значение*/)
		{
			//МассивТипов    = Новый Массив(1);
			//МассивТипов[0] = ТипЗнч(Значение);
			//ОписаниеТипов  = Новый ОписаниеТипов(МассивТипов,,,);
			if(true/*Значение = ОписаниеТипов.ПривестиЗначение()*/)
			{
			}
			return null;
		}

		public void УстановитьДоступностьОтбора(/*ТабличноеПоле, Знач ОбязательныеОтборы = ""*/)
		{
			//ОбязательныеОтборы = Врег(ОбязательныеОтборы) + ", ";
		}
		// Процедура устанавливает доступность всех элементов управления порядком списка.
		//
		// Параметры:
		//  ТабличноеПоле - табличное поле списка.
		//

		public void УстановитьДоступностьПорядка(/*ТабличноеПоле, Доступность = Истина*/)
		{
		}
	}
}
